///*  File Name	: main.cpp
// *  Author		: Pang JiaCai
// *	 E-mail		: 823960168@qq.com
// *  Created on	: 2012-9-18
// *  Description:
// */
//
//#include <stdlib.h>
//#include <fcntl.h>
//#include <vector>
//#include <map>
//#include <iostream>
//#include <algorithm>
//#include <sys/time.h>
//#include <fstream>
//#include <string>
//#include <string.h>
//#include <stdio.h>
//using  namespace   std;
//
//struct NumberInfo
//{
//	NumberInfo()
//	{
//		number =0;
//		appear_times =0;
//	}
//	int number;
//	int appear_times;
//};
//
//typedef std::map<int,NumberInfo> AppearMap;
//std::vector<int> base_number_vector;
//AppearMap number_appear_map;
//
//ofstream outfile;
//std::vector<int> left_number_vec;
//
//void init_base_number(void)
//{
//	base_number_vector.clear();
//	for(int i=1;i<=30;i++)
//	{
//		base_number_vector.push_back(i);
//	}
//}
//
//int rand_number(void)
//{
//	int index = rand()%(int)base_number_vector.size();
//	return base_number_vector[index];
//}
//
//static int cmp_appear_times(NumberInfo n1,NumberInfo n2)
//{
//	return n1.appear_times>n2.appear_times;
//}
//
//void generate_appear_number(void)
//{
//	std::vector<int> number_vector[5];
//	for(int i=0;i<5;i++)
//	{
//		number_vector[i].clear();
//	}
//
//	for (int i = 0; i < 5; i++)
//	{
//		int rand_num = rand()%(20-8)+1+8;
//		int num =0;
//		for(int j=0;j<rand_num;j++)
//		{
//			num = rand_number();
//			number_vector[i].push_back(num);
//			AppearMap::iterator iter = number_appear_map.find(num);
//			if(iter==number_appear_map.end())
//			{
//				NumberInfo info;
//				info.number = num;
//				info.appear_times=1;
//				number_appear_map.insert(std::pair<int,NumberInfo>(num,info));
//			}
//			else
//			{
//				iter->second.appear_times++;
//			}
//		}
//	}
//
//	outfile.write("随机数组：\n",strlen("随机数组：\n"));
//	for (int i = 0; i < 5; i++)
//	{
//		char content[150] = { 0 };
//		sprintf(content, "第[%d]组,包含[%d]个数字:", i + 1,number_vector[i].size());
//		outfile.write(content, strlen(content));
//
//		for (int j = 0; j < (int) number_vector[i].size(); j++)
//		{
//			char number[10]={0};
//			sprintf(number,"%d",number_vector[i][j]);
//			//std::cout << number_vector[i][j] << "\t";
//			outfile.write(number,strlen(number));
//			outfile.write("\t", strlen("\t"));
//		}
//		outfile.write("\n", strlen("\n"));
//	}
//
//	std::vector<NumberInfo> delete_num_vec;
//	std::map<int,int> delete_num_map;
//
//	for(AppearMap::iterator iter=number_appear_map.begin();
//			iter!=number_appear_map.end();iter++)
//	{
//		delete_num_vec.push_back(iter->second);
//	}
//
//	outfile.write("\n出现次数大于3的数字：\n",strlen("\n出现次数大于3的数字：\n"));
//	std::sort(delete_num_vec.begin(),delete_num_vec.end(),cmp_appear_times);
//	for(int i=0;i<(int)delete_num_vec.size();i++)
//	{
//		if(delete_num_vec[i].appear_times>=3)
//		{
//			char content[150] = { 0 };
//			sprintf(content, "数字:%d 出现次数:%d",delete_num_vec[i].number,delete_num_vec[i].appear_times);
//			outfile.write(content, strlen(content));
//			outfile.write("\n", strlen("\n"));
////			std::cout<<"数字:"<< delete_num_vec[i].number
////					<< " 出现次数:" << delete_num_vec[i].appear_times <<std::endl;
//			delete_num_map.insert(std::pair<int,int>(delete_num_vec[i].number,delete_num_vec[i].number));
//		}
//	}
//
//	for(int i=1;i<=30;i++)
//	{
//		if(delete_num_map.find(i)==delete_num_map.end())
//		{
//			left_number_vec.push_back(i);
//		}
//	}
//	//std::cout<<"剩下数字:"<<std::endl;
//	outfile.write("\n剩下数字：\n",strlen("\n剩下数字：\n"));
////	outfile.write("\n",strlen("\n"));
//	for (int i = 0; i < (int) left_number_vec.size(); i++)
//	{
//		char number[10] = { 0 };
//		sprintf(number, "%d", left_number_vec[i]);
//		outfile.write(number, strlen(number));
//		outfile.write("\t", strlen("\t"));
//
//		//std::cout << left_number_vec[i] << "\t";
//		if (i != 0 && (i + 1) % 10 == 0)
//		{
//			std::cout << std::endl;
//			outfile.write("\n", strlen("\n"));
//		}
//	}
//	outfile.write("\n", strlen("\n"));
//	//std::cout << std::endl;
//}
//
//void generate_number_group(void)
//{
//	int n1=0,n2=0,n3=0,n4=0,n5=0,n6=0;
//	int left_size = left_number_vec.size();
//	if(left_size<6)
//	{
//		return ;
//	}
//	int count = 0;
//	outfile.write("\n数组：\n",strlen("\n数组：\n"));
//	//outfile.write("\n",strlen("\n"));
//
//	for (int i = 0; i < left_size-5; i++)
//	{
//		n1 = left_number_vec[i];
//		for (int i1 = i; i1 < left_size; i1++)
//		{
//			n2 = left_number_vec[i1];
//
//			for (int i2 = i1; i2 < left_size; i2++)
//			{
//				n3 = left_number_vec[i2];
//
//				for (int i3 = i2; i3 < left_size; i3++)
//				{
//					n4 = left_number_vec[i3];
//
//					for (int i4 = i3; i4 < left_size; i4++)
//					{
//						n5 = left_number_vec[i4];
//
//						for (int i5 = i4+1; i5 < left_size; i5++)
//						{
//							count++;
//							n6 = left_number_vec[i5];
//							//std::cout<<"array["<<count<<"]-->["<< n1<<","<< n2<<","
//							//		<<n3<<","<<n4<<"," <<n5<<","<<n6<<"]"<<std::endl;
//
//							char content[150] = { 0 };
//							sprintf(content, "array[%d]-->[%d,%d,%d,%d,%d,%d]",count,n1,n2,n3,n4,n5,n6);
//							outfile.write(content, strlen(content));
//							outfile.write("\n", strlen("\n"));
//						}
//					}
//				}
//			}
//		}
//	}
//}
//
//std::string now_time_str(void)
//{
//    char now[64]={0};
//    //strftime(now, 64, "%Y-%m-%d %H:%M:%S", localtime(&mktime(&t)));
//    time_t tt = time(0);
//    strftime(now, 64, "%Y%m%d-%H%M%S", localtime(&tt));
//    return now;
//}
//
//int main()
//{
//	timeval now;
//	gettimeofday(&now, 0);
//	::srand (now.tv_sec);
//
//	std::string file_name = now_time_str()+".txt";
//	outfile.open(file_name.c_str(), fstream::out);
//	if (outfile.fail())
//	{
//		cout << "open file error" << endl;
//		return 0;
//	}
//
//	init_base_number();
//	generate_appear_number();
//	generate_number_group();
//
//	outfile.close();
//	return 0;
//}
//
//
